package com.edu.study.base.stuCourseExercisesResult.domain;

import com.edu.study.base.stuQuestionOption.domain.StuQuestionOption;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import oshi.hardware.platform.mac.MacPowerSource;

import java.io.Serializable;
import java.util.*;

/**
 * 课后练习结果汇总对象 stu_course_exercises_result
 * 
 * @author zw
 * @date 2021-08-30
 */
@Data
@NoArgsConstructor
@ApiModel("课后练习答题结果")
public class StuCourseExercisesResult
{

    /** 主键id */
    private Long id;

    /** 会员id */
    @Excel(name = "会员id")
    @ApiModelProperty("会员id")
    private String memberId;

    /** 课程id */
    @Excel(name = "课程id")
    @ApiModelProperty("课程id")
    private String courseId;

    /** 课后练习目录id */
    @Excel(name = "课后练习目录id")
    @ApiModelProperty("课后练习目录id")
    private String courseItemId;

    /** 课后练习习题类型目录id */
    @ApiModelProperty("课后练习习题类型目录id")
    private String exercisesCatalogId;

    /** 试题id */
    @Excel(name = "试题id")
    @ApiModelProperty("试题id")
    private String questionId;

    /** 试题序号 */
    @ApiModelProperty("试题序号")
    private String questionNum;

    /** 答题结果 */
    @Excel(name = "答题结果")
    @ApiModelProperty("答题结果是否正确,选择填空题：[0:放弃,1 正确 2 错误 ] 速读训练：[3 提前 4 超时]")
    private String answnerResult;

    /** 用户选择的答案选项 */
    @ApiModelProperty("用户的答案")
    private String userAnswer;

    /** 录音文件 */
    @ApiModelProperty("录音文件")
    private String audioFileUrl;

    /** 批改人 */
    @ApiModelProperty("批改人")
    private String approver;

    /** 批改结果 */
    @ApiModelProperty("批改结果")
    private String approveResult;

    /** 批改意见，备注 */
    @ApiModelProperty("备注")
    private String remark;

    /** 提交时间 */
    @JsonIgnore
    @ApiModelProperty(value = "提交时间")
    private Date createTime;

    /** 更新时间 */
    @ApiModelProperty(value = "更新时间",hidden = true)
    private Date updateTime;
    /** 试题类型目录id */
    @ApiModelProperty("试题类型")
    private String questionType;

    /** 试题名称 */
    @ApiModelProperty("试题名称")
    private String questionName;

    /** 试题选项 */
    @JsonIgnore
    private List<StuQuestionOption> questionOptions = new ArrayList<>();


    private List<Map<String,Object>> options = new ArrayList<>();

    /** 答案详情 json 格式保存 */
    @ApiModelProperty("答题结果详情")
    private List<CourseExercisesResultDetail> answerDetails;

}
